package ar.unsam.tp.test

import ar.unsam.tp.tipo.Condicional
import ar.unsam.tp.programa.Jugador
import ar.unsam.tp.condicion.Lugar
import ar.unsam.tp.programa.Partido
import ar.unsam.tp.tipo.Tipo
import junit.framework.Assert
import org.junit.Before
import org.junit.Test
import ar.unsam.tp.excepciones.NoHayJugadoresAnotadosException

class TestCondicional {
	var Jugador pepe = new Jugador 
	var Partido partido = new Partido
	var Tipo tipo
	var Lugar condicion = new Lugar()
 
	@Before
	def void init() {
		condicion.setCondicionDeLugar("San Martin")
		tipo = new Condicional(condicion)
		pepe.setTipoDeInscripcion(tipo)
		partido.setLugar("San Martin")
	}

	@Test
	def void testAlta() {
		partido.alta(pepe)
		Assert::assertEquals(partido.jugadoresCandidatos.contains(pepe), true)
	}

	@Test (expected=typeof(NoHayJugadoresAnotadosException))
	def void testBaja() {
		partido.alta(pepe)
		partido.baja(pepe)
		Assert::assertEquals(partido.jugadoresCandidatos.contains(pepe), false)
	}

	@Test
	def void testPartidoCumpleConCondicionDeJugador() {
		Assert::assertTrue(pepe.tipoDeInscripcion.condicion.cumpleCondicion(partido))
	}

}
